Network server for providing scanning functionality to a computer

ABSTRACT

A server enables a user at a station to scan a document. The station has a computer connected to the network, a browser installed on the computer to enable the user to browse the network, and a scanner in communication with the computer. The server has a database of scanner drivers, a driver selection system that enables the user to select a driver for the scanner from the database of scanner drivers, and a delivery system that transfers a selected driver to the computer and causes the computer to execute the driver. The user uses the browser and the driver selection system to select a driver for the scanner. The delivery system then sends the driver to the computer, and the computer executes the driver. The driver uses the scanner to scan a document, and scanning data corresponding to the document is saved in a predetermined location.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention concerns a network server. More specifically, a network server is disclosed that enables a user to use a scanner by downloading the driver for the scanner.

2. Description of the Prior Art

The explosion of the Internet has coincided with the rising popularity of portable computing. Many people now prefer to buy laptop computers in lieu of traditional desktop computers for, despite the added expense, being able to carry their computers wherever they go is a great convenience for these users. The introduction of the universal serial bus (USB) standard for linking peripheral devices to computers has further simplified the computing environment. Whereas before the advent of. USB a plurality of different connection-schemes were used to link, say, various scanner models to a computer, now a single USB port can be used to connect to any type of scanner. This has been of great benefit to the users of portable computers as they may now bring their computers to a remote location and, if a scanner is available and is USB compatible, they can easily connect their computer to the scanner.

Although the scanner and the physical connection may be available at a remote site, the necessary driver software for the scanner may not be. Generally, scanner driver software is resident on the host computer. If the host computer is moved, as is the case for laptop computers, to a new location with a different type of scanner, the driver software will not be able to properly communicate with the different scanner. Thus, though a resource is physically available, it is still unusable. This can be a source of considerable frustration for users.

SUMMARY OF THE INVENTION

It is therefore a primary objective of this invention to provide a server on a network that allows a user on a host computer to download and execute driver software to perform a scan. The scanned image may be saved on the host computer, the server, or another remote location.

The present invention, briefly summarized, discloses a server for a network. The server enables a user at a station to scan a document. The station has a computer connected to the network, a browser installed on the computer to enable the user to browse the network, and a scanner in communication with the computer. The server has a database of scanner drivers, a driver selection system that enables the user to select a driver for the scanner from the database of scanner drivers, and a delivery system that transfers a selected driver to the computer and causes the computer to execute the driver. The user uses the browser and the driver selection system to select a driver for the scanner. The delivery system then sends the driver to the computer, and the computer executes the driver. The driver uses the scanner to scan a document, and scanning data corresponding to the document is saved in a predetermined location. It is an advantage of the present invention that the user does not need to have scanner driver software pre-installed on the computer to use the scanner. In this manner, the user can connect to any of a plurality of supported scanners and use the scanners without any concern about not having appropriate supporting software. Additionally, with a well-managed database, the user is assured of receiving the most up-to-date scanner drivers possible. Also, the server permits the user to save the scanning data either in an account on the server, at another address on the network, or on the computer.

These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment, which is illustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a server and stations according to the present invention.

FIG. 2 is a function block diagram of the server and a station from FIG. 1.

FIG. 3 is a view of a login page according to the present invention.

FIG. 4 is a view of a driver and destination page according to the present invention.

FIG. 5 is a view of a view scans page according to the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Please refer to FIG. 1 and FIG. 2. FIG. 1 is a block diagram of a server 10 and stations 20 according to the present invention. FIG. 2 is a function block diagram of the server 10 and a station 20. The server 10 uses a network 30 to establish communications with a plurality of stations 20. The network 30 may be a local area network (LAN), a wide area network (WAN), or, in the preferred embodiment, the Internet. Hypertext transfer protocol (HTTP) and file transfer protocol (FTP) are used as communications standards between the server 10 and the stations 20.

Each station 20 comprises a computer 22 in communications with a scanner 24. The scanner 24 may be electrically connected to the computer 22 to establish the communications, but need not necessarily be so. For example, a wireless standard, such as Bluetooth, could be used to establish communications between the scanner 24 and the computer 22. The computer 22 is any sort of computing device, such as a portable computer, a desktop computer, a personal data assistant (PDA), etc. The computer 22 comprises a memory 26. This memory 26 may include working memory for the computer 22, such as dynamic random access memory (DRAM), or permanent storage memory, such as a hard disk. Held within the memory 26 is a browser program 28. When executed by the computer 22, the browser 28 enables a user to browse information across the network 30. Specifically, the browser 28 permits the user to access the server 10.

The server 10 comprises a login system 40. Please refer to FIG. 3 in conjunction with FIGS. 1 and 2. FIG. 3 is a view of a login page 42 according to the present invention. Upon receipt of an HTTP request from the browser 28, the login system 40 generates the login page 42 and sends the login page 42 to the browser 28. Using the browser 28, the user fills in a user name entry 44 and a password entry 46. Clicking on a login button 48 then causes the browser 28 to send the information in the entries 44 and 46 to the server 10. The login system 40 uses the user name information 44 and the password information 46 and compares them against user identification entries 54 in a login list 52. A matching user identification entry 54, having an appropriate user name and password combination matching the entries 44 and 46, is used by the login system 40 to associate the user name entry 44 with an account 58 in an account database 56. The login system 40 thus associates the computer 22 with an individual account 58 on the server 10. The account 58 is used to hold data for the user of the computer 10. The login system 40 may then send so-called “cookies” to the browser 28 to uniquely identify the computer 22 with an account 58, and confirm a successful login procedure of the computer 22. These cookies are stored in the memory 26 of the computer 22, and may optionally be held valid by the server 10 for a predetermined length of time. If a cookie has expired, the login system 40 may require the user to re-login to the server 10.

The server 10 also comprises a driver selection system 60. Please refer to FIG. 4 in conjunction with FIGS. 1 and 2. FIG. 4 is a view of a driver and destination page 62. After successfully logging into the server 10, the driver selection system 60 sends the driver and destination page 62 to the browser 28. The driver selection system 60 uses a driver database 70 to fill in entries 64 a for a drop-down combination box 64 in the driver and destination page 62. The driver database 70 comprises a plurality of scanner drivers 72. Each scanner driver 72 supports a particular type of scanner, and is to be used by the computer 22 to perform a scan with the scanner 24. Ideally, the driver selection system 60 should fill the combination box 64 with descriptive entries 64 a, such as the make and model of the scanner 24 which the driver 72 supports. Each driver 72 within the driver database 70 should therefore have an appropriately descriptive title that the driver selection system 60 can use as an entry 64 a in the combination box 64. Furthermore, the drivers 72 should be as up-to-date as possible to ensure the best possible scanning performance from the scanner 24. Using the browser 28, the user can select one of the entries 64 a that corresponds to the scanner 24. The selected entry 64 a will then appear in a driver selection box 66. The driver and destination page 62 also comprises destination information indicating where scanning data should be saved. By selecting a checkbox 82, the user indicates that he or she wishes the scanning data to be saved in the personal account 58 within the account database 56. By selecting a checkbox 84, the user indicates that the scanning data should be saved at an alternative site. A textbox 86 is used to indicate this alternative site, and is filled in by the user. The alternative site may be a local address on the computer 22, such as a hard disk in the memory 26, or a remote location on the network 30, such as an e-mail account or a universal resource locator (URL). For example, by filling in, “C:\MyStuff\Scans” into the textbox 86, the user indicates that the scanning data should be saved locally on the computer 22. “someuser@somewhere.net” would indicate an e-mail address, whereas, “www.someplace.com/dir/filename” would indicate a URL.

When the user clicks a “scan now!” button 62 a, the browser 28 sends the selected driver information in the driver selection box 66, the check state of the check boxes 82 and 84, and destination information in the textbox 86 to the server 10. A destination selection system 80 within the server 10 uses the check state of the check boxes 82 and 84, and any textual information from the textbox 86 to generate a destination address 83 for scanning data. The destination address 83 indicates where the scanning data should be saved after a scan with the scanner 24 has been completed. If the check box 82 is checked, then the address 83 simply indicates the account 58 of the user. If the check box 84 is checked, then the destination selection system 80 must properly parse the textual information from the textbox 86 to determine what the address 83 should be, and may need to append a default filename onto the address specified in the textbox 86 if the user merely indicated a destination directory. The destination selection system 80 may also verify write permission to any specified URL, and warn the user if the URL is not a valid destination.

After the destination selection system 80 has created the destination address 83, a delivery system 90 generates a transfer file 92. The transfer file 92 is a self-extracting executable file that contains a driver 72 from the database 70. The delivery system 90 selects a driver 72 from the database 70 according to the user-selected scanner driver type, which is obtained from the driver selection system 60 by way of data received from the browser 28 from the driver selection box 66. The self-extracting transfer file 92 may also contain the address 83 so that the driver 72 in the transfer file 92 will know where to send or save the scanning data. The delivery system 90 sends the transfer file 92 to the computer 22, and causes the computer 22 to execute the transfer file 92. When executed by the computer 22, the self-extracting transfer file 92 extracts the driver 72 and address 83, and executes the driver 72. The driver 72 interfaces with the scanner 24 and performs a scan of a document. Data from the scan is then saved at the location indicated by the address 83. In this manner, scanning data is saved either in the user account 58, is sent to an e-mail address, saved at a URL or saved in the memory 26 of the computer 22. After the driver 72 has finished the scanning of the document, and the saving of the scanning data, the driver 72 may cause itself to be erased from the memory 26, along with the self-extracting transfer file 92. This is done to prevent the memory 26 from becoming cluttered with unnecessary drivers 72 and old self-extracting transfer files 92. It should also be noted here that it is not absolutely necessary for the destination address 83 to be inserted into the self-extracting file transfer file 92 by the delivery system 90. When executed by the computer 22, it is also possible for the driver 72 to poll the server 10 to get the destination address 83.

The driver and destination page 62 also has a “view scans” button 62 b. When clicked, the “view scans” button 62 b enables the user to view scanning data stored in the user account 58. Please refer to FIG. 5 in conjunction with FIGS. 1 and 2. FIG. 5 is a view of a view scans page 102. The server 10 also comprises a viewing system 100. When the “view scans” button 62 b is clicked by the user, the viewing system 100 builds the view scans page 102 and sends the view scans page 102 to the browser 28. The viewing system 100 uses information in the user account 58 to build the view scans page 102. Specifically, the viewing system 100 uses scanning data stored in the user's account 58 to build the view scans page 102. The view scans page 102 comprises lines of data 104. Each line of data has a delete button 106, and a title 108. Each title 108 corresponds to scanning data of a document. When a title 108 is clicked, the viewing system 100 will send an image of the scanning data to the browser 28, i.e., as a JPEG or bit-mapped document. In this manner, the user is able to view previously scanned documents. It should be noted that, as the scanning data is stored on the server 10 in the account 58, and not in the memory 26 of the computer 22, the user can access and view the scanning data on any computer 22, so long as the computer 22 has access to the network 30. The delete buttons 106 allow the user to remove from his or her account 58 unwanted scanning data. By clicking on a delete button 106, the viewing system 100 removes scanning data corresponding to the title 108 on the same line 104 from the account 58.

Finally, it should be noted that, although the above discussion has been with reference to a moved computer using a new scanner, the present invention serves equally well for a moved scanner being connected to a new computer. That is, if a user carries his or her scanner 24 to a location having a different computer 22, it is fully possible that the computer 22 will not have a proper driver for the scanner 24. Nevertheless, the user can use the browser 28 to connect to the server 10 and obtain an appropriate driver 72.

Those skilled in the art will readily observe that numerous modifications and alterations of the server and station may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims. 

1-10. (canceled)
 11. A method comprising: providing a selected scanner driver selected from among a plurality of scanner drivers, said selected scanner driver being selected by user inputs provided to a user interface of a computing device; and determining a location for storing scanning data from said user inputs provided to said user interface, said scanning data being captured from use of said selected scanner driver in connection with scanning an image, said location being determined prior to said scanning of said image.
 12. The method of claim 11, and further comprising communicating with a browser hosted on said computing device to receive said user inputs, and wherein said providing said selected scanner driver further comprises transmitting said selected scanner driver to said computing device over a data communication network.
 13. The method of claim 11, and further comprising storing said plurality of scanner drivers in a database of scanner drivers.
 14. The method of claim 11, wherein said determining said location for storing said scanning data further comprises parsing a portion of said user inputs comprising text to extract information associated with said location.
 15. The method of claim 14, wherein said extracted information comprises a universal resource locator.
 16. The method of claim 14, wherein said extracted information comprises an email address.
 17. The method of claim 14, wherein said extracted information comprises information associated with a file directory on said computing device.
 18. The method of claim 11, and further comprising generating a transfer file based, at least in part, on said selected scanner driver and said determined location.
 19. The method of claim 18, wherein said transfer file is executable on said computing device.
 20. The method of claim 19, and further comprising transmitting said transfer file to said computing device over a data communication network.
 21. The method of claim 11, and further comprising determining whether said user has permission to write information to said location.
 22. The method of claim 11, and further comprising selectively enabling said user to access said plurality of drivers based, at least in part, on login information provided to said user interface.
 23. An apparatus comprising: a server, said server being adapted to: provide a selected scanner driver selected from among a plurality of scanner drivers, said selected scanner driver being selected in response to user inputs provided to a user interface; and determine a location for storing scanning data from said user inputs provided to said user interface, said scanning data being captured from use of said selected scanner driver in connection with scanning an image, said location being determined prior to said scanning of said image.
 24. The apparatus of claim 23, wherein said server is further adapted to: communicate with a browser hosted on a computing device to receive said user inputs; and transmit said selected scanner driver to said computing device over a data communication network.
 25. The apparatus of claim 23, wherein said server comprises a database to store said plurality of scanner drivers.
 26. The apparatus of claim 23, wherein said server is further adapted to parse a portion of said user inputs comprising text to extract information associated with said location.
 27. The apparatus of claim 26, wherein said extracted information comprises a universal resource locator.
 28. The apparatus of claim 26, wherein said extracted information comprises an email address.
 29. The apparatus of claim 26, wherein said extracted information comprises information associated with a file directory on a computing device.
 30. The apparatus of claim 23, wherein said server is further adapted to generate a transfer file based, at least in part, on said selected scanner driver and said determined location.
 31. The apparatus of claim 30, wherein said transfer file is executable on a computing device associated with said user.
 32. The apparatus of claim 31, wherein said server is further adapted to transmit said transfer file to said computing device over a data communication network.
 33. The apparatus of claim 23, wherein said server is further adapted to determine whether said user has permission to write information to said location.
 34. The apparatus of claim 23, wherein said server is further adapted to selectively enable said user to access said plurality of drivers based, at least in part, on login information provided to said user interface.
 35. An apparatus comprising: means for providing a selected scanner driver selected from among a plurality of scanner drivers, said selected scanner driver being selected by user inputs provided to a user interface of a computing device; and means for determining a location for storing scanning data from said user inputs provided to said user interface, said scanning data being captured from use of said selected scanner driver in connection with scanning an image, said location being determined prior to said scanning of said image.
 36. The apparatus of claim 35, and further comprising means for communicating with a browser hosted on said computing device to receive said user inputs, and wherein said means for providing said selected scanner driver further comprises means for transmitting said selected scanner driver to said computing device over a data communication network.
 37. The apparatus of claim 35, and further comprising means for storing said plurality of scanner drivers in a database of scanner drivers.
 38. The apparatus of claim 35, wherein said means for determining said location for storing said scanning data further comprises means for parsing a portion of said user inputs comprising text to extract information associated with said location.
 39. The apparatus of claim 38, wherein said extracted information comprises a universal resource locator.
 40. The apparatus of claim 38, wherein said extracted information comprises an email address.
 41. The apparatus of claim 38, wherein said extracted information comprises information associated with a file directory on said computing device.
 42. The apparatus of claim 35, and further comprising means for generating a transfer file based, at least in part, on said selected scanner driver and said determined location.
 43. The apparatus of claim 42, wherein said transfer file is executable on said computing device.
 44. The apparatus of claim 43, and further comprising means for transmitting said transfer file to said computing device over a data communication network.
 45. The apparatus of claim 35, and further comprising means for determining whether said user has permission to write information to said location.
 46. The apparatus of claim 35, and further comprising means for selectively enabling said user to access said plurality of drivers based, at least in part, on login information provided to said user interface. 